<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE beans PUBLIC "-//SPRING//DTD BEAN 2.0//EN" "https://www.springframework.org/dtd/spring-beans-2.0.dtd">

<!--
	Shows common interceptor along with advisor.
-->
<beans>

	<description>
		Matches all Advisors in the factory: we don't use a prefix
	</description>

	<bean id="aapc" class="org.springframework.aop.framework.autoproxy.DefaultAdvisorAutoProxyCreator">
		<!-- This common interceptor will be applied always, before custom lockable advisor -->
		<property name="interceptorNames">
			<value>nopInterceptor</value>
		</property>
	</bean>

	<bean id="nopInterceptor" class="org.springframework.aop.testfixture.interceptor.NopInterceptor"/>

	<bean id="pointcutAdvisor" class="org.springframework.aop.support.DefaultPointcutAdvisor">
		<property name="pointcut">
			<bean class="org.springframework.aop.support.NameMatchMethodPointcut">
				<property name="mappedName" value="doSomething"/>
			</bean>
		</property>
		<property name="advice">
			<bean class="org.springframework.aop.testfixture.interceptor.NopInterceptor"/>
		</property>
	</bean>

	<!-- Stateful mixin. Will apply to all objects. Note that singleton property is false. -->
	<bean id="lockableAdvisor" class="org.springframework.aop.testfixture.mixin.LockMixinAdvisor" scope="prototype"/>

	<bean id="test1" class="org.springframework.beans.testfixture.beans.TestBean">
		<property name="age" value="4"/>
	</bean>

	<bean id="test2" class="org.springframework.beans.testfixture.beans.TestBean">
		<property name="age" value="4"/>
	</bean>

	<bean id="packageVisibleMethod" class="org.springframework.aop.framework.autoproxy.PackageVisibleMethod"/>

</beans>

